library(DT)
dt <- DT::datatable(iris)
dt
Shiny
library(shiny)
Attaching package: ‘shiny’
The following objects are masked from ‘package:DT’:
dataTableOutput,
renderDataTable
fluidPage(
headerPanel(
"Shiny dashboard"
),
sidebarLayout(
# Sidebar with a slider input
sidebarPanel(
sliderInput("obs",
"Number of observations:",
min = 0,
max = 1000,
value = 500)
),
# Show a plot of the generated distribution
mainPanel(
plotly::plot_ly(midwest, x = ~percollege, color = ~state, type = "box")
)
)
) |> showTag()
To stop the server, run servr::daemon_stop(3) or restart your R session
Serving the directory /Users/martinl/Github/110-2-interactive-data-visualization/temp at http://127.0.0.1:4321
plotly
tx5 <- jsonlite::fromJSON("https://www.dropbox.com/s/9yxq2g1a5vdywu6/tx5.json?dl=1") |>
econIDV::as.Data() # this is only for this course to mark the object a data class
library(plotly)
plot_ly(tx5, x = ~date, y = ~median) %>%
add_lines(linetype = ~city) -> plt
plt
ggplot(tx5, aes(x=date, y=median)) +
geom_line(aes(linetype=city)) -> gg
gg

names(tx5)
plt <- function()
{plot_ly(tx5, x = ~date, y = ~median) %>%
add_lines(linetype = ~city) -> plt
plt}
plt()
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQpmaWcgPC0gcGxvdF9seShtaWR3ZXN0LCB4ID0gfnBlcmNvbGxlZ2UsIGNvbG9yID0gfnN0YXRlLCB0eXBlID0gImJveCIpCmZpZwpWaWV3KGZpZykKYGBgCgpgYGB7cn0KbGlicmFyeShsZWFmbGV0KQoKbSA8LSBsZWFmbGV0KCkgJT4lCiAgYWRkVGlsZXMoKSAlPiUgICMgQWRkIGRlZmF1bHQgT3BlblN0cmVldE1hcCBtYXAgdGlsZXMKICBhZGRNYXJrZXJzKGxuZz0xNzQuNzY4LCBsYXQ9LTM2Ljg1MiwgcG9wdXA9IlRoZSBiaXJ0aHBsYWNlIG9mIFIiKQoKbQpWaWV3KG0pCmBgYAoKYGBge3J9CmxpYnJhcnkoRFQpCmR0IDwtIERUOjpkYXRhdGFibGUoaXJpcykKZHQKVmlldyhkdCkKYGBgCgoKYGBge3J9Cmh0bWx3aWRnZXRzOjpzYXZlV2lkZ2V0KCkKaHRtbHRvb2xzOjpzYXZlX2h0bWwoCiAgZmlnLCBmaWxlPSJ0ZW1wL2ZpZy5odG1sIgopCmBgYAoKIyMgU2hpbnkKCmBgYHtyfQpsaWJyYXJ5KHNoaW55KQoKYGBgCgpgYGB7cn0KZmx1aWRQYWdlKAogIGhlYWRlclBhbmVsKAogICAgIlNoaW55IGRhc2hib2FyZCIKICApLAogIHNpZGViYXJMYXlvdXQoCiAgICAjIFNpZGViYXIgd2l0aCBhIHNsaWRlciBpbnB1dAogICAgc2lkZWJhclBhbmVsKAogICAgICBzbGlkZXJJbnB1dCgib2JzIiwKICAgICAgICAgICAgICAgICAgIk51bWJlciBvZiBvYnNlcnZhdGlvbnM6IiwKICAgICAgICAgICAgICAgICAgbWluID0gMCwKICAgICAgICAgICAgICAgICAgbWF4ID0gMTAwMCwKICAgICAgICAgICAgICAgICAgdmFsdWUgPSA1MDApCiAgICApLAoKICAgICMgU2hvdyBhIHBsb3Qgb2YgdGhlIGdlbmVyYXRlZCBkaXN0cmlidXRpb24KICAgIG1haW5QYW5lbCgKICAgICAgcGxvdGx5OjpwbG90X2x5KG1pZHdlc3QsIHggPSB+cGVyY29sbGVnZSwgY29sb3IgPSB+c3RhdGUsIHR5cGUgPSAiYm94IikKICAgICkKICApCikgLT4gdWkgCgp1aSB8PiBzaG93VGFnKCkKYGBgCgoKIyMgcGxvdGx5CgoKYGBge3J9CnR4NSA8LSBqc29ubGl0ZTo6ZnJvbUpTT04oImh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3MvOXl4cTJnMWE1dmR5d3U2L3R4NS5qc29uP2RsPTEiKSB8PgogIGVjb25JRFY6OmFzLkRhdGEoKSAjIHRoaXMgaXMgb25seSBmb3IgdGhpcyBjb3Vyc2UgdG8gbWFyayB0aGUgb2JqZWN0IGEgZGF0YSBjbGFzcwpgYGAKCgpgYGB7cn0KbGlicmFyeShwbG90bHkpCnBsb3RfbHkodHg1LCB4ID0gfmRhdGUsIHkgPSB+bWVkaWFuKSAlPiUKICBhZGRfbGluZXMobGluZXR5cGUgPSB+Y2l0eSkgLT4gcGx0CnBsdApgYGAKCgpgYGB7cn0KZ2dwbG90KHR4NSwgYWVzKHg9ZGF0ZSwgeT1tZWRpYW4pKSArCiAgZ2VvbV9saW5lKGFlcyhsaW5ldHlwZT1jaXR5KSkgLT4gZ2cKZ2cKYGBgCgpgYGB7cn0KbmFtZXModHg1KQpgYGAKCmBgYHtyfQpteWZvcm11bGEgPSB+ICB2b2x1bWUqbWVkaWFuCm1vZGVsLmZyYW1lKG15Zm9ybXVsYSwgdHg1KSAtPiBtYXQwClZpZXcobWF0MCkKYGBgCgpgYGB7cn0KcGx0IDwtIGZ1bmN0aW9uKCkKe3Bsb3RfbHkodHg1LCB4ID0gfmRhdGUsIHkgPSB+bWVkaWFuKSAlPiUKICAgIGFkZF9saW5lcyhsaW5ldHlwZSA9IH5jaXR5KSAtPiBwbHQKICBwbHR9CmBgYAoKYGBge3J9CnBsdCgpCmBgYAoKCgoKCg==